1. Field of the Invention
This invention generally relates to load balancing, and in particular, it relates to balancing workload associated with financial transactions across multiple computer systems.
2. Background Art
Customers often purchase items from a merchant using a transaction card, such as a credit card or a debit card. The customer presents the transaction card to the merchant at a point-of-sale (POS) terminal, and the merchant scans the card to obtain account information. The POS terminal then transmits the account information and the transaction information to a financial institution for authorization. The financial institution processes the transaction and returns an approval, declination, or referral message.
A financial institution that issues transaction cards, such as the American Express Company, Inc., of New York, N.Y., processes a large number of such authorization requests on a daily basis. For example, financial institutions may process over 500 authorization requests per second, and this processing load is often shared across multiple, geographically-dispersed processing centers.
Communications between merchants and processing centers generally utilize packet-based electronic messages and streaming protocols, such as the Internet Protocol (IP). In the case of IP communications, the concept of individual messages and transactions does not exist at the communications protocol level. From a communications protocol perspective, messages and/or transactions may be combined in a single packet or may be split across multiple packets of the communications protocol. Restructuring this stream of packets into individual, logical units of work is often left to the receiving application (e.g. a computer system performing the transaction authorization). In such an environment, it is often difficult to determine a beginning and an end of a unit of work and therefore, it is often difficult to adequately balance the resulting workload between multiple computing systems.
This problem is typically addressed by traditional load balancing devices, such as content switches, that route all data from a given source to a specific computer system. In a Web-based environment, a session is short lived (e.g., a few seconds to a few minutes), and these traditional, session-based load balancing devices adequately distribute the workload between multiple computer systems.
However, in an on-line transaction processing environment, communications sessions are generally long-lived (e.g., hours or days), and transaction volumes may vary significantly throughout the duration of the session. Therefore, traditional, session-based load balancing is generally not effective within the on-line transaction processing environment.
For example, a large merchant may have a store-based sever connecting to ten or more POS terminals, and a session between the server and a processing facility of the financial institution may be initiated when the store opens and may not be closed until twelve or more hours later. During that time, thousands of individual transactions may be processed. In contrast, a session from a small merchant may last a few minutes, and only a few authorization requests might be processed during that time. Therefore, methods of load balancing that treat all sessions equally are not ideal for a on-line transaction card processing environment.